iT邦幫忙

2026 iThome 鐵人賽

DAY 3
0
自我挑戰組

程式碼 AI 寫,我負責看懂:30 天拆解 React × TypeScript系列 第 3

Day 03|TypeScript 不就是 JavaScript 多寫一些型別嗎?

  • 分享至 

  • xImage
  •  

前一篇是初步了解一下 React 與 Vue,這一篇就換成 TypeScript 與 JavaScript。

TypeScript 是我在學習 JavaScript 後期,才知道原來還有這麼一個東西。
在 Google 搜尋並初步了解後,我對 TypeScript 的第一個印象是:更嚴謹、降低出錯率的技術,好像可以把它理解成 JavaScript 的加強版。
因為它可以在寫程式時幫助我們更加明確地辨別型別,讓工程師有機會提早發現錯誤、降低出錯的機率。另外在大型或多人團隊開發時,大家如果能使用比較一致的型別規則,也比較不容易踩坑,後續閱讀與維護程式碼時也會更加清楚。

既然說是「加強版」,那我一開始就在想:
如果會寫 JavaScript,是不是也可以算是會寫 TypeScript 了?
後來又找了一些其他工程師在網路上的分享,看起來這個想法好像有一點道理,但似乎又不能完全畫上等號。

簡單來說,TypeScript 在 JavaScript 的基礎上增加了型別系統,所以我們在撰寫程式時,可以更明確地知道一筆資料預期應該是什麼型別。
例如原本在 JavaScript 裡可能會直接寫:

let age = 20

但在 TypeScript 裡,可以更明確地寫成:

let age: number = 20

這裡多出來的 : number,就是在告訴 TypeScript:

這個 age 預期應該是一個數字。

如果之後不小心寫成:

age = '二十歲'

TypeScript 就可以在開發階段先提醒我們:「這裡好像不太對。」
也就是說,它可以讓一些原本可能要等到程式實際執行之後才發現的問題,在寫程式的過程中就提早被注意到。
除此之外,就像前面提到的,在多人或大型專案中,如果大家都能透過型別更清楚地知道「這個資料應該長什麼樣子」,閱讀與維護程式碼時也會比較容易理解彼此的意圖。
而且原本的變數、function、if、for、array、object 等 JavaScript 寫法也沒有全部消失,看起來確實很像只是在原本的程式碼上「多了一些型別」。

我自己是認為,雖然會 JavaScript 可能會讓學習 TypeScript 比較容易,TypeScript 但畢竟也不是另一套完全不同的程式語言,而是建立在 JavaScript 的基礎之上,所以「會 JavaScript」應該還是不能直接等於「會 TypeScript」。

因為除了原本的 JavaScript 之外,還需要開始理解 TypeScript 自己的型別系統。
像是:

string
number
boolean

這些在第一眼的辨識上還算很好理解,但之後似乎還會遇到:

string | null

或是:

type User = {
  name: string
  age: number
}

這種以前沒有看過的寫法。
甚至之後搭配 React 使用時,好像還會出現更複雜的形式。
想到這裡,就開始有一點:事情好像沒有我一開始想得那麼簡單的感覺了XDD

所以現在的我會先把 TypeScript 理解成:
它不是把 JavaScript 換掉,而是在 JavaScript 原本的基礎上,多增加了一層對資料的描述與檢查。

以前寫 JavaScript 時,我可能比較容易只去想:
「這段程式能不能正常跑?」

但預計開始接觸 TypeScript 之後,好像還需要多想幾件事情:
「我現在正在處理的資料,到底應該長什麼樣子?」
「這筆資料應該被定義成什麼型別?」
「如果資料的型別跟我預期的不一樣,會發生什麼事情?」

或許在真正深入 TypeScript 之後,我還會慢慢增加更多新的思考方式,而不只是單純想著,到底要在變數後面多寫一個 : string,還是 : number


上一篇
Day 02|React、Vue 都能做前端,它們到底差在哪?
下一篇
Day 04|第一次打開 AI 寫的 React + TypeScript,我看得懂多少?
系列文
程式碼 AI 寫,我負責看懂:30 天拆解 React × TypeScript5
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言